home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 129 (1990-02-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 129 (1990-02-15)(Ossowski, Stefan)(DE)(PD).adf / Pinch_It / Anleitung < prev    next >
Text File  |  1989-12-26  |  17KB  |  315 lines

  1. zu PINCH IT:
  2. ------------
  3.  
  4.  
  5. Das Programm:
  6. -------------
  7.  
  8. PINCH IT vereint zwei Funktionen in einem Programm. Als erstes kann man
  9. jeden Intution-Screen als IFF-Bild auf Diskette speichern und zweitens
  10. kann man den Speicher (CHIP-Ram) des Amigas nach Bildern durchsuchen
  11. und auch diese abspeichern. Die gespeicherten Bilder können dann mit
  12. IFF-kompatiblen Malprogrammen, wie z.B. DPaint oder PhotonPaint, gela-
  13. den, bearbeitet und auch ausgedruckt werden.
  14. Das Programm ist in C geschrieben und mit Aztec-C Version 3.6a compi-
  15. liert. Der C-Quellcode der Version 1.2 umfaßt etwa 3000 Zeilen, das
  16. sind ca. 90 KByte Text oder fast 50 Din-A4-Seiten.
  17. PINCH IT kann sowohl vom CLI, als auch von der Workbench aus gestartet
  18. werden. Das Programm läuft in einem eigenen Task, so daß parallel zu
  19. PINCH IT auch andere Programme aufgerufen werden können. Da PINCH IT
  20. beim Start vom CLI den CLI-Task sofort wieder freigibt, kann man auch
  21. dann noch im CLI arbeiten, wenn PINCH IT aktiv ist.
  22.  
  23. Einige Erläuterungen zum Aufbau von Screens:
  24. --------------------------------------------
  25.  
  26. Hier zunächst einige Erläuterungen zum Aufbau von Screens, damit die
  27. die Funktionsweise und die Möglichkeiten von PINCH IT leichter ver-
  28. deutlicht werden können:
  29.  
  30. Wenn ein Screen durch das Betriebssystem des Amigas geöffnet wird, wird
  31. als erstes ein Speicherbereich reserviert, der wichtige Angaben zum
  32. Aussehen (z.B. Größe, Breite, Viewmodus, usw.) des Screens enthält. 
  33. Diese Speicherbereich, ist (gemäß den Include-Files von Aztec-C) fol-
  34. gendermaßen aufgebaut:
  35.  
  36. struct Screen
  37. {
  38.  struct Screen *NextScreen;    /* Zeiger auf den nächsten Screen */
  39.  struct Window *FirstWindow;    /* Zeiger auf das erste Fenster */
  40.  SHORT LeftEdge, TopEdge;    /* Position des Screens */
  41.  SHORT Width, Height;        /* Breite und Höhe des Screens */
  42.  SHORT MouseY, MouseX;        /* aktuelle Position des Mauszeigers */
  43.  USHORT Flags;            /* Bestimmt die Art des Screens */
  44.  UBYTE *Title;            /* Zeiger auf den Titeltext */
  45.  UBYTE *DefaultTitle;        /* Zeiger auf den Standard-Titeltext */
  46.  BYTE BarHeight,
  47.       BarVBorder, BarHBorder,
  48.       MenuVBorder, MenuHBorder;    /* Bestimmt Aussehen der Titelleiste */
  49.  BYTE WBorTop, WBorLeft,
  50.       WBorRight, WBorBottom;    /* Bestimmt Aussehen der Fensterrahmen */
  51.  struct TextAttr *Font;        /* Zeiger auf den Zeichenasatz */
  52.  struct ViewPort ViewPort;    /* Die ViewPort-Struktur (siehe unten) */
  53.  struct RastPort RastPort;    /* Die RastPort-Struktur */
  54.  struct BitMap BitMap;        /* Die BitMap-Struktur (siehe unten) */
  55.  struct Layer_Info LayerInfo;    /* Die LayerInfo-Struktur */
  56.  struct Gadget *FirstGadget;    /* Zeiger auf das erste Gadget */
  57.  UBYTE DetailPen, BlockPen;    /* Vorder- und Hintergrundfarbe */
  58.  USHORT SaveColor0;        /* Für die Beep-Funtkion */
  59.  struct Layer *BarLayer;    /* Zeiger auf Layer */
  60.  UBYTE *ExtData;        /* reserviert */
  61.  UBYTE *UserData;        /* reserviert */
  62. };
  63.  
  64. In dieser Screen_Struktur findet man z.B. die Breite und die Höhe des
  65. Screens, sowie einige weitere interessante Strukturen, wie den ViewPort
  66. und die BitMap:
  67.  
  68. struct ViewPort
  69. {
  70.  struct ViewPort *Next;        /* Zeiger auf nächsten ViewPort */
  71.  struct ColorMap *ColorMap;    /* Zeiger auf ColorMap (siehe unten) */
  72.  struct CopList *DspIns;    /* Zeiger auf einige Copper-Listen */
  73.  struct CopList *SprIns;
  74.  struct CopList *ClrIns;
  75.  struct UCopList *UCopIns;
  76.  SHORT DWidth,DHeight;        /* Breite und Höhe des Displays */
  77.  SHORT DxOffset,DyOffset;    /* Position der Bitplanes */
  78.  UWORD Modes;            /* Viewmodus (siehe unten) */
  79.  UBYTE SpritePriorities;    /* Regelt die Priorität der Sprites */
  80.  UBYTE reserved;        /* reserviert */
  81.  struct RasInfo *RasInfo;    /* Zeiger auf RasInfo-Struktur */
  82. };
  83.  
  84. Der ViewPort gibt nun z.B. Auskunft über den Viewmodus des Screens.
  85. Der Viewmode bestimmt die Art der Darstellung des Screens und entschei-
  86. det z.B. über folgende Modi: HAM, EXTRA_HALFBRITE, HIRES und LACE.
  87. Im Hauptmenü von PINCH IT kann der Viewmodus durch Anklicken der ent-
  88. sprechenden Felder geändert werden. Dabei ist zu beachten, daß der
  89. HIRES-Modus mit maximal 4 Bitplanes und nicht zusamenn mit HAM oder
  90. EXTRA_HALFBRITE benutzt werden kann.
  91. Außerdem findet man im ViewPort einen Zeiger auf die ColorMap-Struktur,
  92. die folgendermaßen aufgebaut ist:
  93.  
  94. struct ColorMap
  95. {
  96.  UBYTE Flags;            /* Flags */
  97.  UBYTE Type;            /* Typ */
  98.  UWORD Count;            /* Anzahl der Farben */
  99.  APTR ColorTable;        /* Zeiger auf Farbtabelle (s. unten) */
  100. };
  101.  
  102. Bei der ColorMap ist der Zeiger auf die Farbtabelle interessant, da die
  103. Farbtabelle, die normalerweise 64 Bytes (2 Bytes für jedes Farbregister)
  104. umfaßt, die Rot-, Grün- und Blau-Anteile eines jeden Farbregisters ent-
  105. hält.
  106. In PINCH IT ist eine Funktion enthalten, die über das Farbmenü zu er-
  107. reichen ist und mit der man diesen Zeiger auf die Farbtabelle verändern
  108. kann. Man kann den gesamten Speicher (auch Fast-Ram) nach einer Farbta-
  109. belle durchsuchen.
  110.  
  111. Eine weitere, für die Arbeit mit PINCH IT interessante Struktur, die in
  112. der Screen-Struktur enthalten ist, ist die BitMap-Struktur:
  113.  
  114. struct BitMap
  115. {
  116.  UWORD BytesPerRow;        /* Anzahl der Bytes pro Zeile */
  117.  UWORD Rows;            /* Anzahl der Zeilen (= Höhe) */
  118.  UBYTE Flags;            /* zur Zeit nicht benutzt */
  119.  UBYTE Depth;            /* Anzahl der Bitplanes */
  120.  UWORD pad;            /* zur Zeit nicht benutzt */
  121.  PLANEPTR Planes[8];        /* Zeiger auf die Bitplanes */
  122. };
  123.  
  124. In der BitMap-Struktur findet man die Tiefe des Screens, also die An-
  125. zahl der Bitplanes, sowie die Zeiger auf die Speicherstellen, an denen
  126. die Bitplanes beginnen.
  127. In der BitMap sind zwar 8 Zeiger auf Bitplanes vorgesehen, jedoch kann
  128. man zur Zeit mit dem Amiga nur 6 Bitplanes nutzen. Die zwei weiteren
  129. Zeiger sind reserviert für spätere, geänderte Versionen der Amiga-
  130. Grafikchips.
  131. Mit PINCH IT kann man den Speicher nach Bitplanes oder Teilen davon
  132. durchsuchen, indem man die aktuellen Zeiger auf die einzelnen Bit-
  133. planes verändert.
  134. Die Bitplanes enthalten die Grafik-Informationen, die bestimmen, wie
  135. jeder einzelne Punkt des Screens auszusehen hat. Dabei entspricht in
  136. jeder Bitplane genau ein Bit einem Punkt des Screens. Wenn weder der
  137. HAM- noch der EXTRA_HALFBRITE-Modus eingeschaltet sind, ergibt die
  138. binäre Addition aller Bits der Bitplanes, die zu einem Punkt gehören,
  139. einen Wert, der die Farbnummer des Punktes bestimmt. Der HAM-Modus
  140. ist ein Sonderfall, bei dem zur Bestimmung der Farbe eines Punktes
  141. auch noch die Rot-, Grün- und Blauwerte des Punktes, der sich links
  142. daneben befindet, herangezogen wird. Der EXTRA_HALFBRITE-Modus er-
  143. möglicht es, 64 statt der sonst üblichen Farben darzustellen. Dabei
  144. werden die unteren 32 Farbregister ganz normal dargestellt, wogegen
  145. die Farben mit den Werten 32 bis 63 mit der halben Helligkeit der un-
  146. teren 32 farbregister dargestellt werden. Wird der HAM- oder der
  147. EXTRA_HALFBRITE-Modus benutzt, so werden für die korrekte Darstellung
  148. 6 Bitplanes benötigt. Außerdem kann hier der HIRES-Modus nicht gleich-
  149. zeitig benutzt werden.
  150.  
  151. Die Bedienung des Programms:
  152. ----------------------------
  153.  
  154. Das Programm kann fast ausschließlich mit der Maus bedient werden.
  155. Nach dem Start des Programms sieht man den aktuellen Screen und darun-
  156. ter ein Kontrollfeld, mit dessen Hilfe das Programm gesteuert wird.
  157. Auf der Linken Seite des Kontrollfeldes befinden sich die Auswahlfelder
  158. der sechs möglichen Bitplanes und deren Startadressen.
  159. Durch Anklicken der Felder mit der Aufschrift 0 bis 5 kann man die Bit-
  160. plane auswählen, die man verschieben will. Die Startadressen kann man
  161. außer durch Verschieben der Bitplanes auch direkt ändern, indem man die
  162. Anzeige anklickt, die Zahl mit der Backspace- oder der Delete-Taste
  163. löscht und dann den neuen Wert einträgt. Die Eingabe schließt man mit
  164. der Return-Taste ab.
  165. Hinter der Anzeige der Adressen befinden sich Felder mit der Aufschrift
  166. 'On' oder 'Off'. Durch Anklicken dieser Felder kann man einzelne Bit-
  167. planes an- oder ausschalten.
  168. Oberhalb der eben beschriebenen Auswahlfelder wird die Anzahl der Bit-
  169. planes des Screen angezeigt. Diese Zahl kann auf die gleiche Art geän-
  170. dert werden, wie die Adressen der Bitplanes.
  171. Durch Anklicken der mit einem Pfeil beschrifteten Felder können einzelne
  172. Bitplanes verschoben werden, wodurch man den gesamten Chip-Speicher nach
  173. Bildern durchsuchen kann. Selbst nach einem Reset befindet sich ein Bild
  174. manchmal noch im Speicher und kann so rekonstruiert werden.
  175. Die Felder mit dem Doppelpfeil dienen dazu, den Speicher schnell zu
  176. durchsuchen, indem die Bitplanes immer um die halbe Bildschirmhöhe ver-
  177. schoben werden.
  178. Mit den vier Feldern links daneben in der oberen Hälfte des Kontroll-
  179. feldes kann man den Viewmodus (wie HAM, HIRES usw.) des Screens ein-
  180. stellen.
  181. Darunter werden die Abmessungen des Screens angezeigt. Die Höhe und die
  182. Breite können auf die gleiche Art verändert werden, wie die Adressen der
  183. Bitplanes. (siehe oben)
  184. Die vier Auswahlfelder am rechten Rand des Kontrollfeldes dienen dazu,
  185. weitere Funktionen aufzurufen. Nach Anklicken des obersten Feldes ge-
  186. langt man in dsa Farbmenü, in dem man die Farben des Screens verämdern
  187. kann.
  188. Durch Anklicken des zweiten Auswahlfeldes kann man nach allen zur Zeit
  189. dem System angemeldeten Screens suchen, Die Anzahl der Bitplanes und
  190. deren Adressen, sowie der Viewmodus, die Abmessungen und die Farben
  191. werden automatisch an diesen Screen angepaßt und auch angezeigt.
  192. Klickt man dieses Feld erneut an, wird der nächste Screen gesucht.
  193. Wenn ein Bildschirm höher als 200 Punkte (oder 400 Punkte im Interlace-
  194. Modus) ist, so wird der untere Teil vom Kontrollfeld verdeckt. Durch
  195. Drücken der rechten Maustaste kann man sich dann den kompletten Screen
  196. ansehen.
  197. Will man das Bild, das sich zur Zeit auf dem Bildschirm befindet, ab-
  198. speichern, so kann man das durch Anklicken des dritten Feldes ereichen.
  199. Es erscheint dann ein Auswahlfeld, in dem man den Namen eingeben kann,
  200. unter dem das Bild abgespeichert werden kann. Das Bild wird nun im IFF-
  201. ILBM-Format abgespeichert und kann dann mit jedem Zeichenprogramm wei-
  202. terbearbeitet werden.
  203. Durch Anklicken des untersten Auswahlfeldes kann man das Programm nach
  204. Bestätigung einer Sicherheitsabfrage beenden.
  205. Das Programm kann ebenfalls durch Anklicken des Schließ-Symbols in der
  206. linken oberen Ecke des Auswahlmenüs beendet werden.
  207. Am rechten Rand des Hauptmenüs befindet sich ein Feld mit der Aufschrift
  208. 'Warten'. Klickt man dieses Feld an, so werden alle Screens und Fenster
  209. von PINCH IT geschlossen und die Workbench, bzw. das CLI-Fenster in den
  210. Fordergrund geschaltet. Wärend man nun mit einem anderen Programm arbei-
  211. ten kann (um z.B. eine Grafik auf den Bildschirm zu bringen, die mit
  212. PINCH IT abgespeichert werden soll), wartet PINCH IT darauf, daß eine
  213. Funktionstaste in Verbindung mit der rechten Amiga-Taste und einer Alt-
  214. Taste gedrückt wird, um wieder aktiv zu werden.
  215. Das Fenster, das auf dem Workbench-Bildschirm geöffnet wird und das eine
  216. Übersicht über die verschiedenen Tastenkombinationen ausgibt, kann durch
  217. Anklicken des Schließsymbols in der oberen linken Ecke geschlossen wer-
  218. den und bei Bedarf mit der Tastenkombination Help-, Alt- und rechte
  219. Amigataste wieder auf den Bildschirm gebracht werden.
  220.  
  221. Folgende Funktionen können durch die Kombination rechte Amiga-Taste,
  222. Alt-Taste und Funktionstaste aufgerufen werden:
  223.  
  224. F1: PINCH IT aktivieren und aktuellen Screen übernehmen.
  225. F2: PINCH IT aktivieren und alle Einstellungen übernehmen, die vor dem
  226.     Anklicken des 'Warten'-Feldes aktiv waren.
  227. F3: Den letzten Screen nach vorne schalten. Durch diese Funktion kann
  228.     man, wenn mehrere Screens geöffnet sind, auswählen, welcher Screen
  229.     sichtbar sein soll.
  230. F4: Die Workbench oder den Screen, auf dem sich das CLI-Fenster befindet
  231.     nach vorne schalten.
  232. F5: Den aktuellen Screen abspeichern. Hier kann, wie in der Speicher-
  233.     Funktion des Hauptmenüs, ein Dateiname ausgewählt werden, unter dem
  234.     der Screen als IFF-ILBM-Bild abgespeichert werden soll.
  235. F10: PINCH IT beenden. Durch diese Funktion kann PINCH IT beendet wer-
  236.      den, ohne daß man das Programm vorher aktivieren muß.
  237.  
  238. Eine Übersicht der Funktionen kann man durch die Tastenkombination
  239. Help-, Alt- und rechte Amigataste anzeigen lassen.
  240.  
  241. Wählt man im Hauptmenü das feld 'Farben ändern' an, so gelangt man in
  242. das Farbmenü. Hier sieht man auf der linken Seite die Farben, die den
  243. 32 Farbregistern entsprechen. Um eine der 32 Farben zu ändern, klickt
  244. man diese mit der Maus an. Die Nummer des gewählten Farbregisters wird
  245. links neben den Farbfeldern angezeigt. Darunter findet man drei Felder,
  246. mit denen man eine Farbe in ein anderes Register kopieren, zwei Farben
  247. vertauschen und einen Farbverlauf herstellen kann. Dazu klickt man zu-
  248. erst die erste Farbe an, dann das Auswahlfeld (Kopieren, Tauschen oder
  249. Farbverlauf) und dann die zweite Farbe. Durch Anklicken des 'Undo'-Fel-
  250. des kann eine Änderung rückgängig gemacht werden. Mit den vier Schiebe-
  251. reglern in der Mitte des Bildschirms kann man die Rot-, Grün- und Blau-
  252. werte, sowie die Helligkeit einer Farbe ändern. Wenn man das unterste
  253. Felde auf der rechten Seite anklickt, gelangt man wieder zum Hauptmenü.
  254. Durch Anklicken des mittleren Feldes kann man alle im Farbmenü gemach-
  255. ten Änderungen wieder rückgängig machen und durch Anklicken des obers-
  256. ten Feldes gelangt man in ein Menü, in dem man den Speicher eine Farb-
  257. tabelle suchen kann. Die Farbtabelle kann sowohl im Chip-, als auch im
  258. Fast-Memory liegen und enthält die Rot-, Grün- und Blau-Anteile der 32
  259. Farbregister.
  260. Auf der Linken Seite wird die Adresse angezeigt, bei der die Farbtabelle
  261. beginnt. Diese Adresse kann auf zwei Arten geändert werden. Entweder man
  262. klickt die Adresse an, löscht die Ziffern, die geändert werden sollen
  263. mit der Delete- oder der Backspace-Taste und überschreibt sie mit dem
  264. neuen Wert. Die Eingabe muß mit der Return- oder der Enter-Taste bestä-
  265. tigt werden. Außerdem kann man die Farbtabelle auch durch Anklicken der
  266. mit den Pfeilen versehenen Felder verschieben. Dabei wird die Start-
  267. adresse durch Anklicken der doppelten Pfeile um die volle Länge der
  268. Farbtabelle (64 Bytes) verschoben, wogegen die Adresse durch die ein-
  269. fachen Pfeile nur um 1 Wort (2 Bytes) verschoben wird.
  270. Die Änderungen der Farbwerte kann man sofort am Bildschirm verfolgen.
  271. Neben der manuallen Suche nach einer Farbtabelle kann man auch den
  272. Computer Speicherbereiche suchen lassen, in denen sich eine Farbtabelle
  273. befinden könnte. Dabei wird darauf geachtet, daß nicht alle Farbregister
  274. den gleichen Wert haben, da man sonst nichts sehen würde. Außerdem dür-
  275. fen die 32 Werte der Farben maximal den Wert 4095 (FFF Hexadezimal) an-
  276. nehmen, da der Wert einer Farbe aus 256 mal dem Rotanteil plus 16 mal
  277. dem Grünanteil plus dem Blauanteil besteht. Und da die RGB-Werte jeweils
  278. maximal den Wert 15 haben können, kann der Gesamtwert der Farbe maximal
  279. 4095 erreichen.
  280. Bei der automatischen Suche nach einer Farbtabelle kann man entweder bei
  281. Adresse 0 oder bei der aktuellen Adresse beginnen.
  282. Möchte man die gemachten Änderungen rückgängig machen, so klickt man das
  283. Feld mit der Aufschrift 'Alte Farbtabelle' an.
  284. Wenn man dagegen die Farbtabelle übernehmen möchte, braucht man nur zum
  285. Farbmenü zurückzukehren. Hier kann man dann auch alle 32 Farbregister
  286. überprüfen und gegebenenfalls noch Änderungen vornehmen.
  287. Wenn man aus dem Hauptmenü oder im Wartezustand (durch Alt-, rechte
  288. Amiga-Taste und F5) ein Bild abspeichern möchte, so kann man den Namen
  289. des Bildes und den Namen des Verzeichnisses in einer Datei-Auswahlbox
  290. angeben.
  291. Entweder man gibt den Namen und das Verzeichnis in den Feldern mit den
  292. entsprechenden Beschriftungen direkt ein oder man benutzt die Auswahl-
  293. felder, die man durch Anklicken mit der Maus bedienen kann. Auf der
  294. linken Seite der Datei-Auswahlbox werden die Dateinamen und Verzeich-
  295. nisse angezeigt, die sich im aktuellen Verzeichnis befinden. Die Dateien
  296. und Verzeichnisse können durch Anklicken mit der Maus ausgewählt werden.
  297. Wird ein Verzeichnis, das mit '(dir)' gekennzeichnet ist, angewählt, so
  298. wird dieses als aktuelles Verzeichnis übernommen und all darin enthal-
  299. tenen Dateien und Verzeichnisse angezeigt.
  300. Befinden sich in einem Verzeichnis mehr Dateien und Verzeichnisse, als
  301. angezeigt werden können, dann kann man die restlichen Datei- und Ver-
  302. zeichnisnamen sichtbar machen, indem man die Pfeil-Felder anklickt oder
  303. die Stellung des Schiebereglers, der sich zwischen den Pfeil-Feldern be-
  304. findet, verändert.
  305. In der recten Hälfte der Datei-Auswahlbox befinden sich am oberen Rand
  306. einige Auswahl felder, mit denen man die Wichtigsten Speichermedien
  307. durch Anklicken mit der Maus auswählen kann, ohne eine Eingabe im Ver-
  308. zeichnis-Feld machen zu müssen. Durch Anklicken des Feldes, das sich am
  309. rechten Rand befindet, gelangt man von einem Unterverzeichnis in das
  310. Verzeichnis, in dem sich das aktuelle Verzeichnis befindet.
  311. Hat man das Verzeichnis und den Namen des Bildes ausgewählt, kann man es
  312. durch Anklicken des Feldes mit der Aufschrift 'Speichern' als IFF-ILBM-
  313. Datei speichern oder den Speichervorgang durch Anklicken des Feldes mit
  314. der Aufschrift 'Nicht speichern' abbrechen.
  315.